home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 23 / AMIGAplus Sonderheft 23 (2000)(Falke)(DE)[!].iso / Updates / AddOns / WormWars / Source / same.h < prev    next >
Text File  |  1999-11-08  |  14KB  |  457 lines

  1. /* $Filename:    WormWars/Source/same.h $
  2.  * $VER:         WormWars 4.1 (6.6.99) $
  3.  * $Description: Header file for Worm Wars 4.1 $
  4.  *
  5.  * © Copyright 1999 James R. Jacobs.
  6.  
  7. SAME ON EACH PLATFORM -----------------------------------------------------
  8.  
  9. miscellaneous */
  10.  
  11. #define CAUSEWAIT              80
  12. #define CHAMPION            1000
  13. #define DEFAULTLEVELS           5
  14. #define ENDXPIXEL            ((STARTXPIXEL + SQUAREX * (FIELDX + 1)) - 1)
  15. #define ENDYPIXEL            ((STARTYPIXEL + SQUAREY * (FIELDY + 1)) - 1)
  16. #define FIELDX                  52                // in squares
  17. #define FIELDY                  38                // in squares
  18. #define HISCORES               4
  19. #define ILLEGAL                ((APTR) 0xA9A9)        // debugging value
  20. #define LIFEMODULO            1000
  21. #define MAXLEVELS              30                // 2K per level. <=99!
  22. #define NAMELENGTH              22                // 0..21 are TEXT, 22 is NULL
  23. #define NUMKEYS                  29
  24. #define PATIENCE              20
  25. #define SAYLIMIT            ((ENDXPIXEL - STARTXPIXEL) / FONTX)
  26. #define VERSION                "$VER: Worm Wars 4.1 (6.6.99) $"
  27.  
  28. // samples
  29.  
  30. #define FXKILLERFIRE     0
  31. #define FXPROTECTORBORN     1
  32. #define FXTIMEBOMBTICK     2
  33. #define FXGETGROWER         3
  34. #define FXMISSILEACTIVE     4
  35. #define FXFILEABOUT         5
  36. #define FXGETPOWERUP     6
  37. #define FXUSETELEPORT     7
  38. #define FXWORMDEATH         8
  39. #define FXGETAMMO         9
  40. #define FXEXPLODE        10
  41. #define FXKILLERBORN    11
  42. #define FXORBBORN        12
  43. #define FXPAIN            13
  44. #define FXSHOOT            14
  45. #define FXTITLESCREEN    15
  46. #define FXVICTORY        16
  47. #define FXFILENEW        17
  48. #define FXFILEOPEN        18
  49. #define FXFILESAVE        19
  50. #define FXBOMBBLAST        20
  51. #define FXDEFEAT        21
  52. #define FXENDOFLEVEL    22
  53. #define FXCLICK            23
  54. #define FXUSEARMOUR        24
  55. #define FXGETOBJECT        25
  56. #define FXTIMEALERT        26
  57. #define FXORBSPLIT        27
  58. #define FXORBDEATH      28
  59. #define FXFILESAVEAS    29
  60. #define FXFX            30
  61. #define FXGETNITRO        31
  62. #define FXJUMP            32
  63. #define FX_C            33
  64. #define FX_O            34
  65. #define FX_M            35
  66. #define FX_P            36
  67. #define FX_L            37
  68. #define FX_E            38
  69. #define FX_T            39
  70. #define FXHISCORE        40
  71. #define FXTHUD            41
  72. #define FXKILLERDEATH    42
  73. #define FXGETSKULL        43
  74. #define FXUSETONGUE        44
  75. #define SAMPLES         44
  76.  
  77. #define FXSTAMPED        FXBOMBBLAST
  78. #define FXUSEPROTECTOR  FXPROTECTORBORN
  79.  
  80. // frequencies
  81.  
  82. #define KILLERFIREFREQ         10
  83. #define KILLERFREQSTART        120
  84. #define KILLERFREQMOD           5
  85. #define KILLERFREQEND         20
  86. #define ORBFREQSTART        220
  87. #define ORBFREQMOD             10
  88. #define ORBFREQEND             20
  89. #define SLIMEFREQSTART        200
  90. #define SLIMEFREQMOD         30
  91. #define SLIMEFREQEND         50
  92. #define SLIMEGROWFREQSTART    120
  93. #define SLIMEGROWFREQMOD     15
  94. #define SLIMEGROWFREQEND     20
  95. #define TELFREQ                240
  96.  
  97. // population limits
  98.  
  99. #define KILLERS                7        // <=ORBS+1!
  100. #define ORBS                6
  101. #define PROTECTORS            2        // <=4!
  102. #define TIMEBOMBS            3
  103.  
  104. // key types
  105.  
  106. #define MOVE                 0    // not AMMO, TRAINER, ONEHUMAN
  107. #define TRAINER                 2    // not MOVE, AMMO, ONEHUMAN
  108. #define ONEHUMAN             3    // not MOVE, AMMO, TRAINER
  109.  
  110. // speeds
  111.  
  112. #define VERYFAST                 1
  113. #define FAST                     2
  114. #define NORMAL                   4
  115. #define SLOW                     8
  116. #define VERYSLOW                16      // must be non-0
  117. #define FRAGSPEED            NORMAL
  118. #define FRAGINCLEVELS            1      // must be non-0
  119. #define ORBSPEED              SLOW
  120. #define ORBINCLEVELS             2      // must be non-0
  121. #define KILLERSPEED              SLOW
  122. #define KILLERINCLEVELS          2      // must be non-0
  123. #define TIMEBOMBSPEED             4
  124. #define FASTESTLEVEL            10
  125. #define MISSILESPEED          FAST
  126.  
  127. /* The constant NORMAL is used for several purposes:
  128.     a)    as a speed (therefore must not be VERYFAST, FAST, SLOW
  129.             or VERYSLOW);
  130.     b)    as a blitmode (therefore must not be BLACK or WHITE); and
  131.     c)    as a pointer (therefore must not be GOLD, SILVER, EMPTY,
  132.             WOOD or STONE).
  133.  
  134. stats */
  135.  
  136. #define AMMOLIMIT       100
  137. #define BIASLIMIT       100
  138. #define STARTLIVES       100
  139. #define LIVESLIMIT       200
  140. #define MODELIMIT       100
  141. #define MULTILIMIT       8      // don't set >8!
  142. #define POWERLIMIT         6
  143. #define SCORELIMIT    999999L
  144.  
  145. /* Field values...
  146. These are objects. */
  147.     #define AFFIXER                 0
  148.     #define AMMO                 1
  149.     #define ARMOUR                 2
  150.     #define BIAS                 3
  151.     #define BOMB                 4
  152.     #define BONUS                 5
  153.     #define GROWER                 6
  154.     #define ICE                     7
  155.     #define LIFE                 8
  156.     #define MISSILE                 9
  157.     #define MULTIPLIER            10
  158.     #define NITRO                11
  159.     #define POWER                12
  160.     #define PROTECTOR            13
  161.     #define SLAYER                14
  162.     #define SWITCHER            15
  163.     #define HEALER                16
  164.     #define TONGUE                17
  165.     #define TREASURE            18
  166.     #define LASTOBJECT            TREASURE
  167. // These are `empty'.
  168.     #define EMPTY                19
  169.     #define SILVER                20
  170.     #define GOLD                21
  171.     #define FIRSTEMPTY            EMPTY
  172.     #define LASTEMPTY            GOLD
  173.     #define LASTKILLERFIRE        LASTEMPTY
  174. // Nothing special about the following...
  175.     #define TELEPORT            (GOLD + 1)
  176.     #define FRAGMENT            (GOLD + 2)
  177.     #define ORB                    (GOLD + 3)
  178.     #define FIRSTPROTECTOR        (GOLD + 4)
  179.     #define LASTPROTECTOR        (GOLD + 7)
  180. /* Margins indicate `ranges' for:
  181.     l:    letters.
  182.     n:    orb bouncing, normal mode.
  183.     t:    orb bouncing, tongue mode.
  184.     a:    orb bouncing, armour mode.
  185.     f:    fragment death.
  186.     k:    killers.                                   l n t a f k */
  187.     #define  GREEN_C            (GOLD +  8)        // [       [
  188.     #define    RED_O            (GOLD +  9)        // |       |
  189.     #define   BLUE_M            (GOLD + 10)        // |       |
  190.     #define YELLOW_P            (GOLD + 11)        // |       |
  191.     #define  GREEN_L            (GOLD + 12)        // |       |
  192.     #define    RED_E            (GOLD + 13)        // |       |
  193.     #define   BLUE_T            (GOLD + 14)        // |       |
  194.     #define YELLOW_E            (GOLD + 15)        // ]       |
  195.     #define SKULL                (GOLD + 16)        //         |
  196.     #define SLIME                (GOLD + 17)        //       [ | [
  197.     #define STONE                (GOLD + 18)        //   [ [ | | |
  198.     #define KILLER                (GOLD + 19)        //   ] | | | |
  199.     #define WOOD                (GOLD + 20)        //     | ] ] |
  200.     #define FIRSTTAIL            (GOLD + 21)        //     |     |
  201.     #define LASTTAIL            (GOLD + 24)        //     ]     ]
  202.     #define FIRSTLETTER            GREEN_C
  203.     #define FIRSTNONE            STONE
  204.     #define FIRSTTONGUE            STONE
  205.     #define FIRSTARMOUR            SLIME
  206.     #define FIRSTFRAGDEATH        FIRSTLETTER
  207.     #define FIRSTKILLER            SLIME
  208.     #define LASTLETTER            YELLOW_E
  209.     #define LASTNONE            LASTTAIL
  210.     #define LASTTONGUE            KILLER
  211.     #define LASTARMOUR            KILLER
  212.     #define LASTFRAGDEATH        WOOD
  213.     #define LASTKILLER            LASTTAIL
  214.     #define LETTERS                (LASTLETTER - FIRSTLETTER)
  215.  
  216. // These are never part of the field[][] or board[][][] arrays.
  217.     #define ORBTONGUE            (LASTTAIL +  1)
  218.     #define ORBARMOUR            (LASTTAIL +  2)
  219.     #define FIRSTFIRE            (LASTTAIL +  3)
  220.     #define LASTFIRE            (LASTTAIL +  6)
  221.     #define FIRSTMISSILE        (LASTTAIL +  7)
  222.     #define LASTMISSILE            (LASTTAIL + 10)
  223.     #define START                (LASTTAIL + 11)
  224.     #define MUSIC                (LASTTAIL + 12)
  225.     #define CLOCK                (LASTTAIL + 13)
  226.     #define STICKY                (LASTTAIL + 14)
  227.     #define FX                    (LASTTAIL + 15)
  228.     #define ZERO                (LASTTAIL + 16)
  229.     #define ONE                    (ZERO + 1)
  230.     #define TWO                    (ZERO + 2)
  231.     #define       HEAD            (ZERO + 10)
  232.     #define  GREENHEADUP         HEAD
  233.     #define    REDHEADUP        (HEAD +  1)
  234.     #define   BLUEHEADUP        (HEAD +  2)
  235.     #define YELLOWHEADUP        (HEAD +  3)
  236.     #define  FIRSTHEAD            GREENHEADUP
  237.     #define   LASTHEAD            YELLOWHEADUP
  238.     #define  GREENHEADDOWN        (HEAD +  4)
  239.     #define    REDHEADDOWN        (HEAD +  5)
  240.     #define   BLUEHEADDOWN        (HEAD +  6)
  241.     #define YELLOWHEADDOWN        (HEAD +  7)
  242.     #define  GREENHEADLEFT        (HEAD +  8)
  243.     #define    REDHEADLEFT        (HEAD +  9)
  244.     #define   BLUEHEADLEFT        (HEAD + 10)
  245.     #define YELLOWHEADLEFT        (HEAD + 11)
  246.     #define  GREENHEADRIGHT        (HEAD + 12)
  247.     #define    REDHEADRIGHT        (HEAD + 13)
  248.     #define   BLUEHEADRIGHT        (HEAD + 14)
  249.     #define YELLOWHEADRIGHT        (HEAD + 15)
  250.     #define  GREENMODEUP        (HEAD + 16)
  251.     #define    REDMODEUP        (HEAD + 17)
  252.     #define   BLUEMODEUP        (HEAD + 18)
  253.     #define YELLOWMODEUP        (HEAD + 19)
  254.     #define  GREENMODEDOWN        (HEAD + 20)
  255.     #define    REDMODEDOWN        (HEAD + 21)
  256.     #define   BLUEMODEDOWN        (HEAD + 22)
  257.     #define YELLOWMODEDOWN        (HEAD + 23)
  258.     #define  GREENMODELEFT        (HEAD + 24)
  259.     #define    REDMODELEFT        (HEAD + 25)
  260.     #define   BLUEMODELEFT        (HEAD + 26)
  261.     #define YELLOWMODELEFT        (HEAD + 27)
  262.     #define  GREENMODERIGHT        (HEAD + 28)
  263.     #define    REDMODERIGHT        (HEAD + 29)
  264.     #define   BLUEMODERIGHT        (HEAD + 30)
  265.     #define YELLOWMODERIGHT        (HEAD + 31)
  266.     #define ANYTHING            FX
  267.     #define ARRAYSIZE            YELLOWMODERIGHT    // Must be <= 127!
  268.  
  269. // These have no imagery.
  270.     #define TEMPSILVER            (ARRAYSIZE + 1)
  271.     #define TEMPWOOD            TEMPSILVER
  272.     #define TEMPSLIME            TEMPSILVER
  273.     #define TEMPGOLD            (ARRAYSIZE + 2)
  274.     #define WASSILVER            (ARRAYSIZE + 3)
  275.     #define NOSQUARE            (ARRAYSIZE + 4)
  276.  
  277. // game status
  278.  
  279. #define GAMEOVER        0
  280. #define PLAYGAME        1
  281. #define FIELDEDIT        2
  282. #define TITLESCRE